package com.administrator.scoreManageSys.service;

import com.alibaba.fastjson.JSONObject;

/**
 * 课程相关
 *
 * @author Administrator
 */
public interface CourseService {


    /**
     * 获取考季列表
     *
     * @param pageNum  当前页
     * @param pageSize 页大小
     * @param name 考季名称
     * @return 考季列表
     */
    JSONObject seasonList(int pageNum, int pageSize, String name);

    /**
     * 添加考季
     *
     * @param userId 操作用户
     * @param name   考季名称
     * @return 操作结果
     */
    JSONObject seasonAdd(Long userId, String name);

    /**
     * 根据id删除考季
     *
     * @param id 考季id
     * @return 删除结果
     */
    JSONObject seasonDelete(Long id);


    /**
     * 根据id修改考季名称
     *
     * @param id   考季id
     * @param name 考季名称
     * @return 操作结果
     */
    JSONObject seasonUpdate(Long id, String name);

    /**
     * 获取科目列表
     *
     * @return 科目列表
     * @param pageNum 当前页
     * @param pageSize 页大小
     * @param name 科目名称
     */
    JSONObject subjectList(Integer pageNum, Integer pageSize, String name);

    /**
     * 添加科目
     *
     * @param userId 操作用户id
     * @param name   新添科目名称
     * @return 操作结果
     */
    JSONObject subjectAdd(Long userId, String name);

    /**
     * 删除科目
     *
     * @param id 科目id
     * @return 操作结果
     */
    JSONObject subjectDelete(Long id);

    /**
     * 修改科目
     *
     * @param name   科目名称
     * @param id     科目id
     * @return 操作结果
     */
    JSONObject subjectUpdate(String name,  Long id);


    /**
     * 获取课程列表
     * @param pageNum 当前页
     * @param pageSize 页大小
     * @param subject 科目id
     * @param name 授课姓名
     * @return 课程列表
     */
    JSONObject courseList(Integer pageNum, Integer pageSize, Integer subject, String name);

    /**
     * 添加课程
     * @param userId 添加人id
     * @param name 课程名清楚
     * @param subject 科目id
     * @return 操作结果
     */
    JSONObject courseAdd(Long userId, String name, Long subject);

    /**
     * 删除课程
     * @param id 删除的课程名称
     * @return 操作结果
     */
    JSONObject courseDeletion(Long id);

    /**
     * 修改课程
     * @param name 课程名称
     * @param subject 课程所属的科目id
     * @param id 课程id
     * @return 操作结果
     */
    JSONObject courseUpdate(String name, Long subject, Long id);
}
